# 假设 a 和 b 是两个已定义的变量
a = 10
b = 3

# 加法
print(f'a + b 的值为：{a + b}')  # 输出 a + b 的结果

# 减法
print(f'a - b 的值为：{a - b}')  # 输出 a - b 的结果

# 乘法
print(f'a * b 的值为：{a * b}')  # 输出 a * b 的结果

# 除法
print(f'a / b 的值为：{a / b}')  # 输出 a / b 的结果 (结果为浮点数)

# 取模
print(f'a % b 的值为：{a % b}')  # 输出 a % b 的结果

# 幂运算
print(f'a ** b 的值为：{a ** b}')  # 输出 a ** b 的结果

# 整除
print(f'a // b 的值为：{a // b}')  # 输出 a // b 的结果

# 比较关系运算符

# 大于
print(f'a > b 的值为：{a > b}')

# 大于等于
print(f'a >= b 的值为：{a >= b}')

# 小于
print(f'a < b 的值为：{a < b}')

# 小于等于
print(f'a <= b 的值为：{a <= b}')

# 等于
print(f'a == b 的值为：{a == b}')

# 不等于
print(f'a != b 的值为：{a != b}')

# 逻辑运算符
a = 10
b = 20
c = 30
# 短路与
# 关系表达式1 and 关系表达式2
d = a < b and b < c
print('两个条件都为真，结果也为真',d)

e = a < b and b > c
print('关系表达式1为真，关系表达式2为假，结果为假',e)

f = a > b and b > c
print('关系表达式1为假，关系表达式2为真，结果为假',f)

g = a > b and b < c
print('两个条件都为假，结果也为假',g)

# 算数表达式1 and 算数表达式2
# 算数表达式1为非0值时，结果为算数表达式2的值
h = 100 and 200
print('算数表达式1为非0值，结果为算数表达式2的值',h)

# 算数表达式1为0值时，结果为算数表达式1的结果0
i = 0 and 200
print('算数表达式1为0值，结果为算数表达式1的结果0',i)

# 通过第一个表达式就可以判断来整个表达式的结果，后的表达式不参加运算
j = 100 and 30>40
print('通过第一个表达式就可以判断来整个表达式的结果，后的表达式不参加运算',j)
print(type(j))

k = 0 and 30>40
print('通过第一个表达式就可以判断来整个表达式的结果，后的表达式不参加运算',k)
print(type(k))

# 短路或
# 定义：关系表达式1 or 关系表达式2
print('a:',a,'b:',b,'c:',c)
l = a < b or b < c
print('关系表达式1为假，关系表达式2为真，结果为真',l)

# 算数表达式1 or 算数表达式2
m = 100 or 200
print('算数表达式1为非0值，结果为算数表达式1的值',m)

# 算数表达式1为0值时，结果为算数表达式2的值
n = 0 or 200
print('算数表达式1为0值，结果为算数表达式2的值',n)

# 通过第一个表达式就可以判断来整个表达式的结果，后的表达式不参加运算
o = 100 or a > b
print('通过第一个表达式就可以判断来整个表达式的结果，后的表达式不参加运算',o)

p = bool(0 or a > b)
print('通过第一个表达式就可以判断来整个表达式的结果，后的表达式不参加运算',p)

# not 运算
w = not(a < b)
x = not(a > b)
print('not(a < b)的结果为：',w)
print('not(a > b)的结果为：',x)

# 赋值运算符
# 复合赋值运算符
# 变量 += 表达式，相当于变量 = 变量 + 表达式
y = 10
print('y =',y)
y += 10
print('y += 10，y =',y)

# 变量 -= 表达式，相当于变量 = 变量 - 表达
z = 10
print('z =',z)
z -= 10
print('z -= 10，z =',z)

# 变量 *= 表达式，相当于变量 = 变量 * 表达
a1 = 10
print('a1 =',a1)
a1 *= 10
print('a1 *= 10，a1 =',a1)

# 变量 /= 表达式，相当于变量 = 变量 / 表达
b1 = 10
print('b1 =',b1)
b1 /= 10
print('b1 /= 10，b1 =',b1)

# 优先级
"""
1.括号()
2.单目运算 非not
3.算数运算符 ：*,/,//,%,+,-
4.关系比较运算符 ：> >= < <= == !=
5.逻辑运算符 与and 或or
6.赋值运算符 =
"""

# 来自通义灵码
# 运算符优先级
"""
1. 括号 ()
2. 单目运算符：非 not, 正负号 +x, -x, 按位非 ~x
3. 指数 **
4. 算术运算符：*, /, //, %
5. 算术运算符：+, -
6. 位移运算符：<<, >>
7. 按位与 &
8. 按位异或 ^
9. 按位或 |
10. 比较运算符：<, >, <=, >=, ==, !=
11. 身份运算符：is, is not
12. 成员运算符：in, not in
13. 逻辑非 not
14. 逻辑与 and
15. 逻辑或 or
16. 条件表达式 x if cond else y
17. 赋值运算符 =, +=, -=, *=, /=, %=, //=, **=, &=, |=, ^=, <<=, >>=
"""